unit TItemUnit_API;

interface
uses Windows, M2Share, SysUtils, EngineType, ObjBase, ObjNpc, Grobal2, ItmUnit;

function TUserEngine_GetItem(nIndex: Integer): pTStdItem; stdcall;
procedure TUserEngine_GetItemAddValue(UserItem: PTUSERITEM; var StdItem: TSTDITEM); stdcall;


function TStdItem_sItemName(Item: pTStdItem): _LPTSHORTSTRING; stdcall;
function TStdItem_StdMode(Item: pTStdItem): pByte; stdcall;
function TStdItem_Shape(Item: pTStdItem): pByte; stdcall;
function TStdItem_Weight(Item: pTStdItem): pByte; stdcall;
function TStdItem_AniCount(Item: pTStdItem): pWord; stdcall;
function TStdItem_Source(Item: pTStdItem): pshortint; stdcall;
function TStdItem_Reserved(Item: pTStdItem): pByte; stdcall;
function TStdItem_NeedIdentify(Item: pTStdItem): pByte; stdcall;
function TStdItem_looks(Item: pTStdItem): pWord; stdcall;
function TStdItem_DuraMax(Item: pTStdItem): pWord; stdcall;
function TStdItem_AC(Item: pTStdItem): pInteger; stdcall;
function TStdItem_MAC(Item: pTStdItem): pInteger; stdcall;
function TStdItem_DC(Item: pTStdItem): pInteger; stdcall;
function TStdItem_MC(Item: pTStdItem): pInteger; stdcall;
function TStdItem_SC(Item: pTStdItem): pInteger; stdcall;
function TStdItem_KC(Item: pTStdItem): pInteger; stdcall;
function TStdItem_Need(Item: pTStdItem): pInteger; stdcall;
function TStdItem_NeedLevel(Item: pTStdItem): pInteger; stdcall;
function TStdItem_Price(Item: pTStdItem): pInteger; stdcall;
function TStdItem_Shape2(Item: pTStdItem): pByte; stdcall;
function TStdItem_NeedLevel2(Item: pTStdItem): pInteger; stdcall;
function TStdItem_UniqueItem(Item: pTStdItem): pByte; stdcall;
function TStdItem_Overlap(Item: pTStdItem): pByte; stdcall;
function TStdItem_ItemType(Item: pTStdItem): pByte; stdcall;
function TStdItem_ItemSet(Item: pTStdItem): pWord; stdcall;
function TStdItem_Binded(Item: pTStdItem): pByte; stdcall;
function TStdItem_CanSuite(Item: pTStdItem): pByte; stdcall;
function TStdItem_BagEffect(Item: pTStdItem): pword; stdcall;
function TStdItem_InnerEffect(Item: pTStdItem): pword; stdcall;
function TStdItem_reserve(Item: pTStdItem): pTBtReserve; stdcall;
function TStdItem_AddOn(Item: pTStdItem): pTBtAddon; stdcall;
function TStdItem_AddonEx(Item: pTStdItem): pTBtAddonEx; stdcall;
function TStdItem_Eva(Item: pTStdItem): pTEvaluation; stdcall;
function TStdItem_DropInfo(Item: pTStdItem): pTStdExtInfo; stdcall;
function TStdItem_SvrSet(Item: pTStdItem): pTStdItemExt; stdcall;
function TStdItem_OutsideEffect(Item: pTStdItem): pword; stdcall;
function TStdItem_OutsideTimeEffect(Item: pTStdItem): pword; stdcall;
function TStdItem_MaxOverlap(Item: pTStdItem): pWord; stdcall;
function TStdItem_ExpBase(Item: pTStdItem): pWord; stdcall;
function TStdItem_SoulBase(Item: pTStdItem): pWord; stdcall;
function TStdItem_MaxLevel(Item: pTStdItem): pByte; stdcall;
function TStdItem_MaxRefine(Item: pTStdItem): pWord; stdcall;
function TStdItem_StickEffect(Item: pTStdItem): pWord; stdcall;

//

procedure TItemUnit_RandomUpgradeWeapon(UserItem: pTUserItem); stdcall;
procedure TItemUnit_RandomUpgradeDress(UserItem: pTUserItem); stdcall;
procedure TItemUnit_RandomUpgrade19(UserItem: pTUserItem); stdcall;
procedure TItemUnit_RandomUpgrade202124(UserItem: pTUserItem); stdcall;
procedure TItemUnit_RandomUpgrade26(UserItem: pTUserItem); stdcall;
procedure TItemUnit_RandomUpgrade22(UserItem: pTUserItem); stdcall;
procedure TItemUnit_RandomUpgrade23(UserItem: pTUserItem); stdcall;
procedure TItemUnit_RandomUpgradeHelMet(UserItem: pTUserItem); stdcall;
procedure TItemUnit_RandomUpgradeBoots(UserItem: pTUserItem); stdcall;
procedure TItemUnit_RandomRefineWeapon(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
procedure TItemUnit_RandomRefineDress(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
procedure TItemUnit_RandomRefine19(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
procedure TItemUnit_RandomRefine202124(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
procedure TItemUnit_RandomRefine26(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
procedure TItemUnit_RandomRefine22(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
procedure TItemUnit_RandomRefine23(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
procedure TItemUnit_RandomRefineHelMet(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
function TItemUnit_TreasureIdentify_Weapon(UserItem: pTUserItem): Integer; stdcall;
function TItemUnit_TreasureIdentify_Wearing(UserItem: pTUserItem; stdMode: Integer): Integer; stdcall;
function TItemUnit_TreasureIdentify_Common(UserItem: pTUserItem; n: Integer; var Abil: array of TEvaAbil): Integer; stdcall;
function TItemUnit_SecretProperty_Weapon(UserItem: pTUserItem; bLevel: Integer): Integer; stdcall;
function TItemUnit_SecretProperty_Wearing(UserItem: pTUserItem; stdMode: Integer; bLevel: Integer): Integer; stdcall;
function TItemUnit_SecretProperty_Common(UserItem: pTUserItem; n: Integer; var Abil: array of TEvaAbil; bLevel: Integer): Integer; stdcall;
procedure TItemUnit_UnknowHelmet(UserItem: pTUserItem); stdcall;
procedure TItemUnit_UnknowRing(UserItem: pTUserItem); stdcall;
procedure TItemUnit_UnknowNecklace(UserItem: pTUserItem); stdcall;
function TItemUnit_LoadCustomItemName(): Boolean; stdcall;
function TItemUnit_SaveCustomItemName(): Boolean; stdcall;
function TItemUnit_AddCustomItemName(nMakeIndex, nItemIndex: Integer; sItemName: string): Boolean; stdcall;
function TItemUnit_DelCustomItemName(nMakeIndex, nItemIndex: Integer): Boolean; stdcall;
function TItemUnit_GetCustomItemName(nMakeIndex, nItemIndex: Integer): string; stdcall;
procedure TItemUnit_Lock(); stdcall;
procedure TItemUnit_UnLock(); stdcall;

implementation

procedure TItemUnit_RandomUpgradeWeapon(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.RandomUpgradeWeapon(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomUpgradeWeapon');
  end;
end;
procedure TItemUnit_RandomUpgradeDress(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.RandomUpgradeDress(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomUpgradeDress');
  end;
end;
procedure TItemUnit_RandomUpgrade19(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.RandomUpgrade19(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomUpgrade19');
  end;
end;
procedure TItemUnit_RandomUpgrade202124(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.RandomUpgrade202124(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomUpgrade202124');
  end;
end;
procedure TItemUnit_RandomUpgrade26(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.RandomUpgrade26(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomUpgrade26');
  end;
end;
procedure TItemUnit_RandomUpgrade22(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.RandomUpgrade22(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomUpgrade22');
  end;
end;
procedure TItemUnit_RandomUpgrade23(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.RandomUpgrade23(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomUpgrade23');
  end;
end;
procedure TItemUnit_RandomUpgradeHelMet(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.RandomUpgradeHelMet(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomUpgradeHelMet');
  end;
end;
procedure TItemUnit_RandomUpgradeBoots(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.RandomUpgradeBoots(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomUpgradeBoots');
  end;
end;
procedure TItemUnit_RandomRefineWeapon(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
begin
  try
    ItemUnit.RandomRefineWeapon(UserItem, RandomAddValue);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomRefineWeapon');
  end;
end;
procedure TItemUnit_RandomRefineDress(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
begin
  try
    ItemUnit.RandomRefineDress(UserItem, RandomAddValue);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomRefineDress');
  end;
end;
procedure TItemUnit_RandomRefine19(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
begin
  try
    ItemUnit.RandomRefine19(UserItem, RandomAddValue);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomRefine19');
  end;
end;
procedure TItemUnit_RandomRefine202124(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
begin
  try
    ItemUnit.RandomRefine202124(UserItem, RandomAddValue);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomRefine202124');
  end;
end;
procedure TItemUnit_RandomRefine26(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
begin
  try
    ItemUnit.RandomRefine26(UserItem, RandomAddValue);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomRefine26');
  end;
end;
procedure TItemUnit_RandomRefine22(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
begin
  try
    ItemUnit.RandomRefine22(UserItem, RandomAddValue);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomRefine22');
  end;
end;
procedure TItemUnit_RandomRefine23(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
begin
  try
    ItemUnit.RandomRefine23(UserItem, RandomAddValue);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomRefine23');
  end;
end;
procedure TItemUnit_RandomRefineHelMet(UserItem: pTUserItem; var RandomAddValue: TRandomAddValue); stdcall;
begin
  try
    ItemUnit.RandomRefineHelMet(UserItem, RandomAddValue);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_RandomRefineHelMet');
  end;
end;
function TItemUnit_TreasureIdentify_Weapon(UserItem: pTUserItem): Integer; stdcall;
begin
  try
    Result := ItemUnit.TreasureIdentify_Weapon(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_TreasureIdentify_Weapon');
  end;
end;
function TItemUnit_TreasureIdentify_Wearing(UserItem: pTUserItem; stdMode: Integer): Integer; stdcall;
begin
  try
    Result := ItemUnit.TreasureIdentify_Wearing(UserItem, stdMode);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_TreasureIdentify_Wearing');
  end;
end;
function TItemUnit_TreasureIdentify_Common(UserItem: pTUserItem; n: Integer; var Abil: array of TEvaAbil): Integer; stdcall;
begin
  try
    Result := ItemUnit.TreasureIdentify_Common(UserItem, n, abil);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_TreasureIdentify_Common');
  end;
end;
function TItemUnit_SecretProperty_Weapon(UserItem: pTUserItem; bLevel: Integer): Integer; stdcall;
begin
  try
    Result := ItemUnit.SecretProperty_Weapon(UserItem, bLevel);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_SecretProperty_Weapon');
  end;
end;
function TItemUnit_SecretProperty_Wearing(UserItem: pTUserItem; stdMode: Integer; bLevel: Integer): Integer; stdcall;
begin
  try
    Result := ItemUnit.SecretProperty_Wearing(UserItem, stdMode, bLevel);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_SecretProperty_Wearing');
  end;
end;
function TItemUnit_SecretProperty_Common(UserItem: pTUserItem; n: Integer; var Abil: array of TEvaAbil; bLevel: Integer): Integer; stdcall;
begin
  try
    Result := ItemUnit.SecretProperty_Common(UserItem, n, Abil, bLevel);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_SecretProperty_Common');
  end;
end;
procedure TItemUnit_UnknowHelmet(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.UnknowHelmet(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_UnknowHelmet');
  end;
end;
procedure TItemUnit_UnknowRing(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.UnknowRing(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_UnknowRing');
  end;
end;
procedure TItemUnit_UnknowNecklace(UserItem: pTUserItem); stdcall;
begin
  try
    ItemUnit.UnknowNecklace(UserItem);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_UnknowNecklace');
  end;
end;
function TItemUnit_LoadCustomItemName(): Boolean; stdcall;
begin
  try
    Result := ItemUnit.LoadCustomItemName;
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_LoadCustomItemName');
  end;
end;
function TItemUnit_SaveCustomItemName(): Boolean; stdcall;
begin
  try
    Result := ItemUnit.SaveCustomItemName;
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_SaveCustomItemName');
  end;
end;
function TItemUnit_AddCustomItemName(nMakeIndex, nItemIndex: Integer; sItemName: string): Boolean; stdcall;
begin
  try
    Result := ItemUnit.AddCustomItemName(nMakeIndex, nItemIndex, sItemName);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_AddCustomItemName');
  end;
end;
function TItemUnit_DelCustomItemName(nMakeIndex, nItemIndex: Integer): Boolean; stdcall;
begin
  try
    Result := ItemUnit.DelCustomItemName(nMakeIndex, nItemIndex);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_DelCustomItemName');
  end;
end;
function TItemUnit_GetCustomItemName(nMakeIndex, nItemIndex: Integer): string; stdcall;
begin
  try
    Result := ItemUnit.GetCustomItemName(nMakeIndex, nItemIndex);
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_GetCustomItemName');
  end;
end;
procedure TItemUnit_Lock(); stdcall;
begin
  try
    ItemUnit.lock;
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_Lock');
  end;
end;
procedure TItemUnit_UnLock(); stdcall;
begin
  try
    ItemUnit.Unlock;
  finally
    MainOutMessageAPI('[Exception] TItemUnitApi.TItemUnit_UnLock');
  end;
end;

//TUserEngine
procedure TUserEngine_GetItemAddValue(UserItem: PTUSERITEM; var StdItem: TSTDITEM);
  stdcall;
var
  Item: pTStdItem;
begin
  try
    Item := UserEngine.GetStdItem(UserItem.wIndex);
    ItemUnit.GetItemAddValue(UserItem, StdItem);
  except
    MainOutMessageAPI('[Exception] TItemApi.TUserEngine_GetItemAddValue');
  end;
end;

function TUserEngine_GetItem(nIndex: Integer): pTStdItem; stdcall;
begin
  try
    Result := UserEngine.GetStdItem(nIndex);
  except
    MainOutMessageAPI('[Exception] TItemApi.TUserEngine_GetItem');
  end;
end;

//StdItem
function TStdItem_sItemName(Item: pTStdItem): _LPTSHORTSTRING; stdcall;
begin
  try
    Result := @Item.Name;
  except
    MainOutMessageAPI('[Exception] TItemApi.TItemUnit_sItemName');
  end;
end;
function TStdItem_StdMode(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.StdMode;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_StdMode');
  end;
end;
function TStdItem_Shape(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.Shape;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Shape');
  end;
end;
function TStdItem_Weight(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.Weight;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Weight');
  end;
end;
function TStdItem_AniCount(Item: pTStdItem): pWord; stdcall;
begin
  try
    Result := @Item.AniCount;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_AniCount');
  end;
end;
function TStdItem_Source(Item: pTStdItem): pshortint; stdcall;
begin
  try
    Result := @Item.Source;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Source');
  end;
end;
function TStdItem_Reserved(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.Reserved;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Reserved');
  end;
end;
function TStdItem_NeedIdentify(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.NeedIdentify;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_NeedIdentify');
  end;
end;
function TStdItem_looks(Item: pTStdItem): pWord; stdcall;
begin
  try
    Result := @Item.looks;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_looks');
  end;
end;
function TStdItem_DuraMax(Item: pTStdItem): pWord; stdcall;
begin
  try
    Result := @Item.DuraMax;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_DuraMax');
  end;
end;
function TStdItem_AC(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.AC;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_AC');
  end;
end;
function TStdItem_MAC(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.MAC;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_MAC');
  end;
end;
function TStdItem_DC(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.DC;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_DC');
  end;
end;
function TStdItem_MC(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.MC;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_MC');
  end;
end;
function TStdItem_SC(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.SC;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_SC');
  end;
end;
function TStdItem_KC(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.KC;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_KC');
  end;
end;
function TStdItem_Need(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.Need;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Need');
  end;
end;
function TStdItem_NeedLevel(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.NeedLevel;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_NeedLevel');
  end;
end;
function TStdItem_Price(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.Price;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Price');
  end;
end;
function TStdItem_Shape2(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.Shape2;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Shape2');
  end;
end;
function TStdItem_NeedLevel2(Item: pTStdItem): pInteger; stdcall;
begin
  try
    Result := @Item.NeedLevel2;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_NeedLevel2');
  end;
end;
function TStdItem_UniqueItem(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.UniqueItem;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_UniqueItem');
  end;
end;
function TStdItem_Overlap(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.Overlap;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Overlap');
  end;
end;
function TStdItem_ItemType(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.ItemType;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_ItemType');
  end;
end;
function TStdItem_ItemSet(Item: pTStdItem): pWord; stdcall;
begin
  try
    Result := @Item.ItemSet;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_ItemSet');
  end;
end;
function TStdItem_Binded(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.Binded;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Binded');
  end;
end;
function TStdItem_CanSuite(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.CanSuite;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_CanSuite');
  end;
end;
function TStdItem_BagEffect(Item: pTStdItem): pword; stdcall;
begin
  try
    Result := @Item.BagEffect;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_BagEffect');
  end;
end;
function TStdItem_InnerEffect(Item: pTStdItem): pword; stdcall;
begin
  try
    Result := @Item.InnerEffect;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_InnerEffect');
  end;
end;
function TStdItem_reserve(Item: pTStdItem): pTBtReserve; stdcall;
begin
  try
    Result := @Item.reserve;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_reserve');
  end;
end;
function TStdItem_AddOn(Item: pTStdItem): pTBtAddon; stdcall;
begin
  try
    Result := @Item.AddOn;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_AddOn');
  end;
end;
function TStdItem_AddonEx(Item: pTStdItem): pTBtAddonEx; stdcall;
begin
  try
    Result := @Item.AddonEx;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_AddonEx');
  end;
end;
function TStdItem_Eva(Item: pTStdItem): pTEvaluation; stdcall;
begin
  try
    Result := @Item.Eva;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_Eva');
  end;
end;
function TStdItem_DropInfo(Item: pTStdItem): pTStdExtInfo; stdcall;
begin
  try
    Result := @Item.DropInfo;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_DropInfo');
  end;
end;
function TStdItem_SvrSet(Item: pTStdItem): pTStdItemExt; stdcall;
begin
  try
    Result := @Item.SvrSet;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_SvrSet');
  end;
end;
function TStdItem_OutsideEffect(Item: pTStdItem): pword; stdcall;
begin
  try
    Result := @Item.OutsideEffect;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_OutsideEffect');
  end;
end;
function TStdItem_OutsideTimeEffect(Item: pTStdItem): pword; stdcall;
begin
  try
    Result := @Item.OutsideTimeEffect;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_OutsideTimeEffect');
  end;
end;
function TStdItem_MaxOverlap(Item: pTStdItem): pWord; stdcall;
begin
  try
    Result := @Item.MaxOverlap;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_MaxOverlap');
  end;
end;
function TStdItem_ExpBase(Item: pTStdItem): pWord; stdcall;
begin
  try
    Result := @Item.ExpBase;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_ExpBase');
  end;
end;
function TStdItem_SoulBase(Item: pTStdItem): pWord; stdcall;
begin
  try
    Result := @Item.SoulBase;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_SoulBase');
  end;
end;
function TStdItem_MaxLevel(Item: pTStdItem): pByte; stdcall;
begin
  try
    Result := @Item.MaxLevel;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_MaxLevel');
  end;
end;
function TStdItem_MaxRefine(Item: pTStdItem): pWord; stdcall;
begin
  try
    Result := @Item.MaxRefine;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_MaxRefine');
  end;
end;
function TStdItem_StickEffect(Item: pTStdItem): pWord; stdcall;
begin
  try
    Result := @Item.StickEffect;
  except
    MainOutMessageAPI('[Exception] TItemApi.TStdItem_StickEffect');
  end;
end;


end.
